مجموعه
نکات سیستم عامل
n
بخش ا ول ( تعاریف ، مقدمه ، تاریخچه و انواع سیستم
عامل )
·
نرم افزارها به دو دسته کلی تقسیم می
شوند : الف) نرم افزار های سیستمی ب ) نرم افزارهای کاربردی
·
مهمترین
نرم افزار سیستمی ، سیستم عامل است . editorها و
کامپایلر ها نیز جزء این دسته هستند.
·
در بحث
مفاهیم سیستم عامل باید توجه داشت که بعضی سیستمها
وروشها ی ذکر شده درمورد pcها صدق نمی کنند
وبرای درک بهتر مطالب لازم
است تجسم درستی از آنها داشته باشید .
·
سیستم
عامل از دید کاربرمعمولی یک ماشین توسعه یافته و
مجازی است که پیچیدگی های سخت افزار را مخفی
می کند . و از دید کاربر حرفه ای مدیر منابع سیستم
است
·
·
Time Sharing یعنی اشتراک زمانی و تقسیم زمان پردازشگربه زمانهای
کوچک و مساوی بین تمام کاربران که در هر تکّه زمان، CPU کارهای متفاوت کاربران مختلف را اجراء میکند
. که استفاده بهینه را از توانمندی های سیستم محیّا
می کند .
·
سیستم
عامل منابع سیستم و همچنین خودش را مدیریت می
کند .
·
در کامپیوترهای
نسل اول که سیستم عامل وجود ندلشت ،
وظایف آن را اپراتور و تا حدودی برنامه های کاربر انجام می داداند
.
·
سیستم
های دسته ای یا Batch
Systems
(1960) جزء سیستمهای نسل دوم هستند که دارای اولین سیستمها
ی عامل شدند . FMS وسیستم عامل IBSYSبرای سخت افزار IBM7094 از آن جمله بودند.
·
چند
برنامگی اولین بار با سیستم عامل OS/360
(1970) از نسل سوم کامپیوتر ها ارائه شد .
·
سیستم
های Time Sharing با ایده نیاز به Quick Response پس از سیستم های دسته ای وارد عرصه
کامپیوترشدند.
·
اولین
سیستم اشتراک زمانی CTSS نام داشت . Multics دیگر سیستم اشتراک زمانی بود که می
توانست صدها کاربر را سرویس دهی کند .
·
Time Sharing یعنی اشتراک زمانی و تقسیم زمان پردازشگربه زمانهای
کوچک و مساوی بین تمام کاربران که در هر تکّه زمان، CPU کارهای متفاوت کاربران مختلف را اجراء میکند
.
·
در سالهای 1990 یکی از دانشمندان
رشته کامپیوتر بنام کن تامسون نسخه تک کاربره ای از روی Multics ساخت که همان منجر به پیدایش سیستم عامل Unix شد.
·
کامپیتر
های نسل چهارم ازLSI استفاده می
کردند (1980) . DOS و LINUX
از سیستم های اولیّه این نسل هستند .
·
باز بودن
کد Unix باعث شد تا نسخه های متعدد ی
از روی آن نوشته شود .نهاتاً IEEE یک استانداردی بر روی آن بنا
نهاد که Posix نام گرفت .
·
سیستمهای
عامل توزیع شده در شبکه ها استفاده میشوند و امکان پردازش موازی
و استفاده همزمان از چند cpu را دارند . لذا مدیریت پردازه پیچیده
دارند .
·
سیستم
های چند پردازه ای Multi
Processor
هم در شبکه و هم روی یک سیستم ممکن است استفاده شوند.دوبه
قسم SMP چند پردازنده ای متقارن و ASMP
چند پردازنده ای نا متقارن تقسیم مشوند . SMP
ها سیستم عامل و برنامه های دگر را ممکن استبر روی هر یک
از CPUها اجراء کنند
.ولی در ASMPها سیستم عامل همواره از یک CPU
استفاده کرده و دیگر CPU ها برای برنامه های دیگر استفاده می
شوند.
·
سیستم
SUNos/4 از نوع ASMP
و سیستم solaris/2 از نوع SMP
میباشد .
·
Real
Time
یعنی سرویس دهی آنی و بی درنگ
به کاربر. پروسه های Real Time می بایست
در زمان مشخصی اجراء شوند . پس از آن دیگر نتیجه اجراء پروسه
ارزشی ندارد .
·
Real
Time
نوع سخت محدودیّت زمانی دارد وپاسخ را در زمان مشخصی
می خواهد لذا از حافظه مجازی و سیستم Time Sharing در آن استفاده نمی شود .
بی درنگ نوع نرم کافی است وعده پاسخ را در یک محدوده زمانی
داشته باشد و پروسه آن نسبت به دیگر پروسه ها همواره از اولویّت بیشتری
برخوردار است ..
·
پاسخ سریع
یا Quick Response جزء انواع سیستم عاملها نیست
.
·
سیستم
های دسترسی چند تایی Multi Access به سیستمی اطلاق می شود که هنگام پردازش یک
کار به دستگا ههای دیگر I/O نیز توجه
دارد و واکنش نشان می دهد.
·
انواع
ساختارهای موجود در سیستم عاملها عبارتند از : لایه ای – یک
پارچه – ماشین مجازی – مشتری خدمت گذار
·
Dos سیستم یک
پارچه، THEsystem یک سیستم
لایه ای ، VM یک سیستم
ماشین مجازی
و novel یک سیستم مشتری خدمت گزار می
باشند .
·
Bufferهای مورد استفاده درسیستم های کامپیوتری
ممکن است سخت افزاری باشند مانند بافر موجود در یک چاپگر و یا بافر کنترلر هارد دیسک . یا نرم افزاری تشکیل شده در RAM سیستم ویا حجیم تر بر روی دیسک
.
·
هدف از
استفاده بافر ها تسریع در عملیات
I/O است همچنین تطایق سرعت بین
دستگاههای کند I/O با CPU ی
سریع
·
در
استفاده از Single Buffer نمی توان همزمان با خوانده
شدن بافر توسط CPU ، از ورودی
اطلاعات جدیدی را در
آن ریخت ولی در Double Buffer می توان همزمان با عملیات پردازش ، عملیات
ورودی وخروجی را نیز انجام داد.
·
سیستم
عاملها یی که در شروع کار ، بر روی دیسک قرار می
گرفتند را سیستمهای عامل دیسکی یا DOS می خواندند که مخفف Disk Operating System می باشد .
·
بیشترین
قسمت از سیستم عامل Uinx به زبان C نوشته شده است لذا
قابل حمل برروی سخت افزارهای مختلف میباشد .
·
Win 3.1 یک سیستم
کامل نیست . چرا که به صورت یک پوسته بر روی
DOS سوار می شود.
·
CPUlimited یا CPU bound به برنامه های سنگین باتنگنای عملیّاتی
محاسباتی اطلاق می شود . I/O
limited
به برنامه های دارای تنگنای زمانیI/O
گفته می شود . مانند برنامه های محاوره ای
و تجاری با حجم I/O زیاد .
·
Spooling یعنی عملیّات
همزمان دستگاههای جانبی Simultaneous Prifral Operation On Line
·
در سیستم
های نسل سوم کارهای I/O پشت سر هم منظم
شده بودند . لذا سیستم پس از اجراء یکی می توانست بلا
فاصله به دیگری بپردازد . این توانمندی را تکنیک Spooling می خوانند
.
·
خواندن
اطلاعات کارهای مختلف ( JOB ) از روی دیسک یا نوارمغناتیسی پشت سر هم ویا چاپ اطلاعات کاربران مختلف
نمونه هایی از استفاده Spooling می باشد .
·
وقفه سخت
افزاری یک سیگنال یا
علامت سخت افزاری است که بروز یک اتفاق در سیستم را به CPU اعلام می
کند .
·
یک
سیستم عامل باید بتواند وقفه وارد شده به CPU را شناسایی
کند و در پاسخ به آن ، عمل مناسب را ( سرویس وقفه ) به اجراءگذارد.وقفه های
سخت به کمک یک چیپ کنترل وقفه شناسایی شده و کد آن به CPU گزارش می
شود .
·
وقفه ها
از نقطه نظر های مختلف تقسیم بندی می شوند . انواع آن
عبارتند از وقفه سخت افزاری ، وقفه نرم افزاری وقفه Timer و I/O و وقفه برنامه که نرم افزاری است و در روند اجراء
برنامه ها ممکن است رخ دهد .
·
سیستم
عامها دارای دو بخش دستورات پوسته ای
و فراخوانی سیستمی می باشند. System cals ها در داخل برنامه
ها استفاده می شوند .
·
مفسر دستورات است که با کاربر تعامل دارد ممکن
است درون پوسته سیستم باشد یا در هسته
·
فرا خوانی
سیستمی در سیستم های دسته ای JCL نام داشت که برنامه و داده های
مربوطه را با هم به ماشین می سپرد و از تعامل مدام کاربر با آن جلو گیری
می کرد . در Unix بنام Force
شناخته می شود.
n
بخش دوم ( مدیریّت
پردازه )
·
پروسه یک
فراروند در حال اجراء است در حالی که برنامه و فایل ممکن است روی
حافظه جانبی در یک دستگاه خاموش قرار گرفته باشند . پروسه باید CPU را تا انتهای
اجراء در اختیار بگیرد .
·
CPU از نظر مدیریتی هیچ توانی را ندارد و اصولاً نمی
تواند تشخیص دهد که چه چیز را به اجرا در می آورد.
·
تنها
حالت موجود یک پروسه نسبت به CPU حالت RUN می باشد .
·
حالت های
اصلی پروسه نسبت به سیستم عامل ، سه حالت : RUN
READY BLOCKED می باشد .
·
حالت های New ,
End , Suspend Wait ,
Suspend Ready را نیز در بعضی
موارد می توان در نظر گرفت .
·
SUspend Blocked :حالت Blocked اگر به طول بی انجامد، پروسه به دیسک منتقل
شوده و این حالت رخ می دهد
·
Suspend Ready : پروسه از حالت Ready
با توجه به نبود حافظه کافی به این حالت می رود .
·
هنگامی
که سیستم عامل تصمیم می گیرد CPU را به پردازش دیگری اختصاص دهد ، وضعیّت
پردازش فعلی را که درون CPU موجود است ، برای
ادامه عملیات در مرحله بعد در جایی از حافظه ذخیره می
کند . به این عمل تعویض متن یا
Context Switch گویند.
·
هر گاه یک
وقفه رخ دهد ، سرویس مربوط به آن وقفه اجراء می شود سپس برنامه وقفه
خورده اجراء میشود . البته ممکن است با بروز وقفه برنامه ای با اولویّت
بالاتر متقاضی اجراء شده باشد که طبیعتاً آن برنامه اجرا خواهد شد .
·
Thread نخ یا رشته کنترلی : منظور
پروسه های سبک وزن سیستمی هستند که می توانند به طور موازی اجراء شوند . به آنها Light Weight Process یا LWP
نیز گفته می شود .
·
منظور از
زمان بندی آن بخش از سیستم عامل است که مشخص می کند از پروسه های
آماده اجراءکدام زودتر وبرای چه مدتی اجراء شوند . Scheduler .
·
برش زمانی
CPU یا
Time Slice یا Quantum
یا برهه زمانی
، همگی یک مفهوم دارند. معمولاً کمتر ازms 100
·
انواع
زمانبندها : کوتاه مدت -- بلند مدت -- میان مدت
·
JOB
Scheduler جزء زمانبندی دراز مدت است که در آن کارهایی از
روی دیسک را انتخاب و به حافظه اصلی بار می کند.
·
الگریتم
های انتخاب Job عبارتند از Mixed -- Fifo
و SJF
·
منظور از
زمان انفجار CPU زمانی است که برای اجراء
پروسه کامل نیاز است .
·
زمان
بازگشت برای یک پروسه عبارت است از زمان تحویل آن به سیستم
تا پایان اجرایش
·
زمانبندب
FIFO یا FCFS یک
الگریتم انحصاری است ولی در صورت نیاز پروسه به عملیات
I/O ممکن است CPU
را به پروسه دیگری داد . (
انحصاری یا Non Preemptive)
·
RR یا نوبت گردشی
یک الگریتم ساده قدیمی و رایج می باشد . غیر انحصاری است . با میانگین
انتظارنسبتاً بالا
·
الگریتم
زمانبندی ابتداء کوتاهترین کار یا SJF
انحصاری است ودارای کمترین زمان انتظار برای پروسه ها می
باشد . نام دیگر آن SPN می باشد . ( Shortest Process Next ) برای
کار های دسته ای که زمان انفجار پروسه از پیش مشخص است مناسب می باشد .
·
الگریتم
HRRN یا بالاترین نسبت پاسخ همان HRNاست که زمان
انتظار پروسه های بلند مدت را نسبت به روش SJF
در نظر می گیرد.
·
الگریتم SRT
نوع غیر انحصاری SJF می
باشد . که در آن ممکن است CPU از پروسه فعلی گرفته شده و به پروسه ای
تازه وارد داده شود که زمان کمتری را برای اجراء نسبت به پروسه فعلی
نیاز دارد
·
SRT یا SRTF
به کارهای کوتاهتر اولوّیت می دهد . لذا به دلیل مصرف
زمان بیشتر برای عملیات زمانبندی Over Head بیشتری
نیز دارد .
·
الگوریتم
زمانبندی RR همه پروسه هارا یکسان
در نظر می گیرد در حالی که پروسه ها از نظر اهمیّت پردازش
با هم متفاوت هستند . در زمانبندی Priority اولیت پروسه
ها نسیت به نوعشان متفاوت است و با توجه به اولویتشان در صف قرارمی
گیرند .
·
در
استفاده از Priority
پروسه های با اولویت CPU را در اختبار گرفته و اجراء می شوند سپس نوبت به پروسه بعدی
می رسد .( انحصاری ) اما ممکن است این الگریتم به صورت غیر
انحصاری سازماندهی شده با شد که در آن صورت با اجراء پروسه به اندازه یک
Quantum از اولویّت آن کم شود وپروسه دیگری
جای آن را بگیرد .
·
زمانبندی
صف های چندگانه یا Multiple
Queues
برای پردازشها ی مختلف چندین صف جدا درنظر می گیرد
. پروسه ها با توجه به نوعشان در صف خود قرار می گیرند . برای استفاده از این روش می
بایست پردازش ها قابل دسته بندی باشند . ابتداء پروسه های صف های
با اولویت بالاتر اجراء شده سپس پروسه های صفهای بعدی .
·
در Multiple Queues ممکن است Priority بین صفوف
ودر هر صف از الگریتم دیگری مثلاً RR یا
FCFS استفاده شود .
·
در الگریتم
Priority اگر به پروسه ها اجازه دهیم که
بین صفها نیز جا بجا شوند آن الگریتم را صفهای چند گانه
با فیدبک می خوانیم .MFQ یا MLFQ .
·
زمانبندی
شانسی یا Lottery : به پروسه ها با
توجه به اولویتشان تعدادی عدد به صورت اتفاقی هنگام تقاضای
اجراء ، داده می شود وهنگام اجراء ،عددی اتفاقی تولید می
شود و پروسه دارنده آن عدد به اجرا گذاشته می شود .
·
ابتدا
کوتاهترین کار ، الگریتمی است که برعکس SJF عمل می
کند . LPT
·
در الگریتم
های استفاده کننده از Quantum ، زمانبند سطح پایین
عملیات همگام کردن منطقی برنامه ها را انجام می دهد . زمانبندی میان مدت اولویت
بندی و عملیات برش زمانی را انجام می دهد . زمانبند سطح
بالا تعیین کننده ورود کارها به داخل سیستم می باشد
n
بخش سوّم ( مدیریّت حافظه )
·
منظورازمدیریت
حافظه،مدیریت حافظه اصلی است Main Memory Managemant.
·
دودسته
کلّی مدیریت حافظه داریم : ساده و پیچیده
?
BY : Mohammad Ansari
* Mail : MA623@yahoo.com
·